The present invention pertains to a method and apparatus for testing a storage device. More particularly, the present invention pertains to a method and apparatus for testing storage device I/O functionality during a storage operation, such as a write, read, or erase operation.
The term storage device is commonly used to refer to hard disk drives, which have moving parts, and to solid-state memory devices, which use solid-state memory as their main storage medium and a device interface commonly found in hard disk drives. Testing a storage device may include repeatedly writing and reading test data across selected or all memory locations available on the drive. Erase operations may also be performed. The test data and its address must be tracked or accounted for so that data subsequently read at the same address may be verified. Test data verification and hence, I/O functionality testing becomes increasingly more difficult to accomplish since it may become difficult to distinguish between similar test data that were written at adjacent locations at different time intervals. Increasing the number of different types of test data may reduce confusion between test data stored at adjacent addresses but adds complexity. Moreover, as storage device capacity increases, testing write, erase, and/or read functionality becomes more difficult since more address locations must be tested as capacity increases. Consequently, there is a need for an improved method and apparatus for testing the I/O functionality of storage devices.
In accordance with one embodiment of the present invention, a method of writing test data in a memory space within a memory store includes: generating a header having an address representing the location of the memory space in the memory store, and a seed value; generating test data using the seed value; and storing the header and the test data in the memory space.
In accordance with another embodiment of the present invention, a method of testing a memory space within a memory store includes: generating a header having an address representing the location of the memory space in the memory store, and a seed value; generating a set of values using the seed value; storing the header and the set of values in the memory space; retrieving data from the memory space; generating a new seed value using the set of values; and comparing the new seed value with the seed value.
In accordance with yet another embodiment of the present invention, an apparatus for testing a memory space within a memory store includes: a computer having a storage device interface controller; a storage device having an interface suitable for coupling to said storage device interface controller and the memory store; a first function for generating a header having an address representing the location of the memory space in the memory store, and a seed value; a second function for generating a set of values using said seed value; and a third function for storing said header and said set of values in the memory space.
In accordance with a further embodiment of the present invention, an apparatus for testing a memory space within a memory store includes: a computer having a storage device interface controller; a storage device having an interface suitable for coupling to said storage device interface controller and the memory store; a first function for generating a header having an address representing the location of the memory space in the memory store, and a seed value; a second function for generating a set of values using said seed value; a third function for storing said header and said set of values in the memory space; a fourth function for retrieving data from the memory space; a fifth function for generating a new seed value using said set of values; and a sixth function for comparing said new seed value with said seed value.